package com.freemalll.merchant.domain.entity.coopManagement;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.freemalll.merchant.common.AbstractBaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 商户管理：资方明细
 * </p>
 *
 * @author songshixiong
 * @since 2025-06-04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("mer_asset_manage_detail")
@Schema(description = "商户管理：资方明细")
public class MerAssetManageDetail extends AbstractBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    @TableId(value = "source_detail_id", type = IdType.ASSIGN_UUID)
    private String sourceDetailId;

    @Schema(description = "资方主键")
    @TableField("source_id")
    private String sourceId;

    @Schema(description = "启用状态 0否 1是")
    @TableField("enable_flag")
    private Integer enableFlag;

    @Schema(description = "支持场景： 大健康： GREAT_HEALTH 教育：EDUCATION")
    @TableField("supporting_scenarios")
    private String supportingScenarios;

    @Schema(description = "合作状态：正常合作：NORMAL_COOPERATION 暂停合作： SUSPEND_COOPERATION  停止合作： TERMINATION_COOPERATION")
    @TableField("cooperation_status")
    private String cooperationStatus;

    @Schema(description = "推单状态： 正常推单：NORMAL_PUSH_ORDERS 暂停推单： PAUSE_PUSH_ORDERS")
    @TableField("push_order_status")
    private String pushOrderStatus;

    @Schema(description = "日限额 单位万")
    @TableField("daily_limit")
    private BigDecimal dailyLimit;

    @Schema(description = "月限额 单位万")
    @TableField("monthly_limit")
    private BigDecimal monthlyLimit;

    @Schema(description = "支付方式 多选 逗号隔开")
    @TableField("pay_type")
    private String payType;

    @Schema(description = "息费支持 多选 逗号隔开")
    @TableField("interest_fee_support")
    private String interestFeeSupport;

    @Schema(description = "费率区间：最高费率")
    @TableField("highest_rate")
    private BigDecimal highestRate;

    @Schema(description = "费率区间：最低费率")
    @TableField("minimum_rate")
    private BigDecimal minimumRate;

    @Schema(description = "年龄范围：最高年龄")
    @TableField("highest_age")
    private Integer highestAge;

    @Schema(description = "年龄范围：最低年龄")
    @TableField("minimum_age")
    private Integer minimumAge;

    @Schema(description = "性别限制 0 无1 男 2 女")
    @TableField("gender_restrictions")
    private Integer genderRestrictions;

    @Schema(description = "民族限制 多选 逗号隔开")
    @TableField("ethnic_restrictions")
    private String ethnicRestrictions;

    @Schema(description = "职业限制 多选 逗号隔开")
    @TableField("occupational_restrictions")
    private String occupationalRestrictions;

    @Schema(description = "客户区域限制 多选 逗号隔开")
    @TableField("customer_regional_restrictions")
    private String customerRegionalRestrictions;

    @Schema(description = "项目限制 多选 逗号隔开")
    @TableField("project_constraints")
    private String projectConstraints;

    @Schema(description = "授信额度：最高金额")
    @TableField("maximum_amount")
    private BigDecimal maximumAmount;

    @Schema(description = "授信额度：最低金额")
    @TableField("minimum_amount")
    private BigDecimal minimumAmount;

    @Schema(description = "期数支持 多选 逗号隔开")
    @TableField("support_periods")
    private String supportPeriods;

    @Schema(description = "授信时效：天")
    @TableField("credit_timeframe")
    private Integer creditTimeframe;

    @Schema(description = "放款时效：天")
    @TableField("lending_timeframe")
    private Integer lendingTimeframe;

    @Schema(description = "封禁期：天")
    @TableField("ban_period")
    private Integer banPeriod;

    @Schema(description = "二单限制： 0 无 1 有")
    @TableField("two_order_restriction")
    private Integer twoOrderRestriction;

    @Schema(description = "商户报审 0 否1 是")
    @TableField("merchant_approval")
    private Integer merchantApproval;

    @Schema(description = "成立时长：天")
    @TableField("establishment_duration")
    private Integer establishmentDuration;

    @Schema(description = "商户区域限制 多选 逗号隔开")
    @TableField("mer_regional_restrictions")
    private String merRegionalRestrictions;

    @Schema(description = "合同签署 0 否 1 是")
    @TableField("contract_signing")
    private Integer contractSigning;

    @Schema(description = "活动报备： 0 否 1 是")
    @TableField("activity_reporting")
    private Integer activityReporting;

    @Schema(description = "商户巡检： 0否1 是")
    @TableField("merchant_inspection")
    private Integer merchantInspection;

    @Schema(description = "是否代偿： 0否1是")
    @TableField("compensation_flag")
    private Integer compensationFlag;

    @Schema(description = "代偿标准")
    @TableField("compensation_standard")
    private String compensationStandard;

    @Schema(description = "是否回购： 0否1是")
    @TableField("buy_back_flag")
    private Integer buyBackFlag;

    @Schema(description = "回购标准")
    @TableField("buy_back_standard")
    private String buyBackStandard;

    @Schema(description = "线下还款： 0否1是")
    @TableField("offline_repayment")
    private Integer offlineRepayment;

    @Schema(description = "线下还款比率")
    @TableField("offline_repayment_rate")
    private BigDecimal offlineRepaymentRate;


}
